from fastapi import APIRouter
from typing import Union,Optional

router = APIRouter()

# 查询参数  
# 路径函数中声明不属于路径参数的参数，会被自动识别为查询参数,比如以下代码，job_id会被识别为查询参数
@router.get("/jobs/{job}")
def get_jobs(job_id: int, job: str):
    return [{"job_id": job_id, "job": job}]

# 有默认参数就可以填也可以不填,没有默认参数就必须填
@router.get("/findJobs/{job}")
def get_jobs(skill: str = None, job: str = "default"):
    return [{"skill": skill, "job": job}]

'''
类型注解，type hints
扩展讲解一下type hints
union types 联合类型

'''

# 联合类型
def process_item(item: Union[int, str, None], item2: Optional[int] = None): # 联合类型，item可以是int,str,None，没有默认值依旧是必选项; Optional[int] = None 表示item2可以是int,也可以是None,默认值为None
    return item


# 类型转换
def convert_to_int(value: str) -> int:
    return int(value)


